1. Field of the Invention
The present invention relates to transformation of print data streams and more particularly to provision of a transformation service.
2. Description of the Related Art
In the field of printing a document is often sent for printing as a data stream in a format which is unsuitable for use with the printer on which the document is to be printed. As a result a common task in printing is, for example, to transform a data-stream from a first format created by a printing application to a second format suitable for a printer. Such a transformation is often performed by a print server which acts as an intermediary between the sender and the printer.
For example in the Advanced Function Presentation (AFP) architecture a client may send a Mixed Object: Document Content Architecture-Presentation (MO: DCA-P) document to a print server for printing, the print server then transforms the document to an Intelligent Printer Data Stream (IPDS) command stream and then forwards it to a printer, or other output device, for the purpose of outputting the document.
Further in this environment it is known to provide a printing service and charge for use of the service based on various factors.
For example U.S. Pat. No. 6,515,756 to IBM discloses a printing service in which a client is charged according to a number of copies printed.
Further, for example, JP2002-304274 to Canon Inc. discloses a print service which calculates the number of pages in a print job and then charges the submitter of the job a fee based on the number of pages. The job is not printed until the fee is paid. Further US 2002/1078128 to Hewlett-Packard Co. discloses a printing system in which a document is prepared for printing, but the document is not printed until an appropriate payment has been authorized.
Further, for example, JP2003-066796 to Ricoh Co Ltd discloses a print system which determines an amount of information in a print file, uses this to determine an amount of toner required for printing the print file, and then charges a fee based on the determined amount of toner.
Further, for example, US2003-0182248 discloses a service, such as a print system, which assigns use points according to services used when printing a document, and then charges according to the assigned use points.
However, each of these prior art solutions include the printing of the document and accordingly the determined charges are intended to cover the cost of the printing the document. However in some situations a full printing service is not required, for example where the document creator has access to a printer but not the software required to transform the document into a format suitable for the printer. In this case a transform service is required.
For example US2004/0073708 to Kevin L. Warnock discloses a subscription transform service which converts an XHMTL document to a PDF document. A charge is made for subscription to the service for a given time period, or for a given number of transformations and amount of storage required for transformed documents.
However, in printing there are many different transformations which may be required and these are generally complex due to the number of unique elements within any given printer data stream. For example these elements may consist of fonts, text, raster images, vector images, bar code data, etc. Accordingly a transform service which can cope with large data streams and/or many different data stream transformations and/or peak loads, requires a relatively powerful machine which supports a plurality of transformations. Such a machine may or may not be dedicated to the task and further may be capable of parallel processing using a plurality of transform engines each of which execute transform programs. This enables a data stream to be divided into multiple parts (work units) for processing in parallel, using different transform engines. Further due to the complexity of the transformations, transform programs may encounter errors during processing. For example, such errors can be due to poor software design, a poor understanding of existing requirements, coding errors, or inability of an older transform program to handle newer data stream elements. For example, given two transform programs which perform the same transformation, but developed by independent sources, it is likely that each transform program will encounter errors at different points in their processing such that whilst one fails to transform a given data stream the other succeeds.
The complexity and CPU intensive nature of data transformation leads to three potential problems: firstly an entity which requires to transform print jobs must purchase equipment powerful enough to handle the peak transform load; secondly in many industries the processing occurs in a short time window such that transform capacity is mostly idle; and thirdly the transform machine and software have to be administered, for example to upgrade for new software or to increase capacity, to fix problems, and to generally maintain the system, such administration entailing considerable system administration costs. Further, for example, with regard to system administration costs, if an error occurs during the transformation of a data stream from one format to another format (e.g. from Printer Command Language (PCL) to AFP), human intervention is required to perform problem determination. For example intervention may involve normalization of the data stream by removing or ignoring portions of it, or use of an alternate transform program to perform the transformation.